<?php

namespace View;

class RegisterView{
	
	private $username = "username";
	private $pass = "pass";
	private $pass2 = "pass2";
	private $register = "register";
	
	// Konstanter med meddelanden som skall kunna visas för användaren
	const USER_EXISTS = "Användaren finns redan";
	const EMPTY_USERNAME = "Användarnamnet är tomt";
	const PASSWORD_NOT_ACCEPTED = "Lösenord är felaktigt";
	const SUCCESS = "Användaren registrerad";
	const GENERIC_ERROR = "Något gick fel i registreringen";
	
	// Skapar ett fomulär för att registrera sig
	public function CreateRegisterForm(){	
		
		return "
				<form id='register'>
				<fieldset>
					<legend>Registrera ny användare</legend>
					
					<label for='username'>Användarnamn: </label>
					<input type='text' name='$this->username' id='username' class='textinput' />
					</br>					
					
					<label for='password'>Lösenord: </label>
					<input type='password' name='$this->pass' id='password' class='textinput' />
					</br>					
					<label for='password'>Upprepa lösenord: </label>
					<input type='password' name='$this->pass2' id='password2' class='textinput' />
					</br>
					<input type='submit' name='$this->register' id='registerButton' value='Registrera' />
					
				</fieldset>
				</form>				
		"
		;		
	}
	// Funktion för att hämta utt ett användarnamn
	public function GetUserName($Validation){
					
		// Kontrollerar om något användarnamn är inskrivet
		if (isset($_GET[$this->username])) {
			
			// Tar bort eventuella taggar sin användaren försöker mata in och returnerar det inskrivna användarnamnet
			return $Validation->StringValidationNonHTML($_GET[$this->username]);
			
		}
		else{
			return false;
		}
	}
	
	// Funktion för att hämta ut lösenordet
	public function GetPassword($Validation){
		
		// Kontrollerar så att det finns ett lösenord
		if (isset($_GET[$this->pass])){

			// Kontrollerar så att de båda inskriva lösenorden överrensstämmer med varandra
			if ($_GET[$this->pass] == $_GET[$this->pass2]) {
					
				// Kontrollerar att båda de inskrivna lösenorden går igenom valideringen
				if ($Validation->PasswordValidation($_GET[$this->pass])){
								
					// Returnerar lösenordet
					return $_GET[$this->pass];
				}
			}			
		}	
			
		else{
				return false;	
			}									
	}
	
	// Kontrollerar om användaren har klickat på knappen för att registrera sig
	public function TriedToRegister(){
		return isset($_GET[$this->register]);
	}
	
	//Tar emot en array och formaterar för utskrift
	public function GenerateMessageOutput($messages) {
		$output = "";
		foreach ($messages as $value) {
			$output .= $value . "</br>";
		}
		return $output;
	}
}
